﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Hydra.Shell.Attributes;
using Hydra.Shell.Enumerations;
using System.Windows.Media.Imaging;

namespace Hydra.Shell.Interfaces
{
    [Guid("DC0AF70E-5097-4DD3-9983-5A98C3A19942")]
    public interface IHydraStatusBar : IQueryServiceProvider 
    {
        void Animation(bool fOnOff, BitmapImage pvIcon);
        void Clear();
        void FreezeOutput(bool fFreeze);
        int FreezeCount { get; }
        string Text { get; set; }
        bool IsCurrentUser(IHydraStatusbarUser pUser);
        bool IsFrozen { get; }
        int CurrentComplete { get; }
        bool Progress(ref int pdwCookie, int fInProgress, string pwszLabel, int nComplete, int nTotal);
        void SetColorText(string pszText, Color crForeColor, Color crBackColor);
        void SetInsMode(InsertMode pvInsMode);
        void SetLineChar(object pvLine, object pvChar);
        void SetLineColChar(object pvLine, object pvCol, object pvChar);
        void SetSelMode(Hydra.Shell.Enumerations.SelectionMode pvSelMode);
        string LegalText { get; set; }
        void SetXYWH(ref object pvX, ref object pvY, ref object pvW, ref object pvH);
    }
}
